/**
 * TestPrimes.h
 * ============
 *
 * @author Jonathan Bernard (jdbernard@gmail.com)
 * @author George Hinkle (george371p@gmail.com)
 */

#ifndef _TEST_PRIMES_H_
#define _TEST_PRIMES_H_

// --------
// includes
// --------

#include <sstream> // istringtstream, ostringstream
#include <string>  // ==

#include "cppunit/TestFixture.h"             // TestFixture
#include "cppunit/extensions/HelperMacros.h" // CPPUNIT_TEST, CPPUNIT_TEST_SUITE, CPPUNIT_TEST_SUITE_END

// -----------
// TestPrimes
// -----------

struct TestPrimes : CppUnit::TestFixture {
    // ----
    // read
    // ----

    void test_read_1 () {
        std::istringstream in("1\n");
        const bool b = read(in);
        CPPUNIT_ASSERT(b == true);
        CPPUNIT_ASSERT(sum== 1);}

    void test_read_2 () {
        std::istringstream in("123456789\n");
        const bool b = read(in);
        CPPUNIT_ASSERT(b == true);
        CPPUNIT_ASSERT(sum== 123456789);}

    void test_read_3 () {
        std::istringstream in("");
        const bool b = read(in);
        CPPUNIT_ASSERT(b == false);}

    // ----
    // eval
    // ----

    void test_eval_1 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 1;
        eval();
        std::ostringstream out;
        print(out);
        CPPUNIT_ASSERT(out.str()=="Impossible.\n");}

    void test_eval_2 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 7;
        eval();
        std::ostringstream out;
        print(out);
        CPPUNIT_ASSERT(out.str()=="Impossible.\n");}

    void test_eval_3 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 8;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 8);}

    void test_eval_4 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 25;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 25);}

    void test_eval_5 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 8;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 8);}

    void test_eval_6 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 16;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 16);}

    void test_eval_7 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 32;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 32);}

    void test_eval_8 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 64;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 64);}

    void test_eval_9 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 128;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 128);}

    void test_eval_10 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 256;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 256);}

    void test_eval_11 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 512;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 512);}

    void test_eval_12 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 1024;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 1024);}

    void test_eval_13 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 2048;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 2048);}

    void test_eval_14 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 4096;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 4096);}

    void test_eval_15 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 8192;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 8192);}

    void test_eval_16 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 16384;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 16384);}

    void test_eval_17 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 32768;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 32768);}

    void test_eval_18 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 65536;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 65536);}

    void test_eval_19 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 131072;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 131072);}

    void test_eval_20 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 262144;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 262144);}

    void test_eval_21 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 524288;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 524288);}

    void test_eval_22 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 1048576;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 1048576);}

    void test_eval_23 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 2097152;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 2097152);}

    void test_eval_24 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 4194304;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 4194304);}

    void test_eval_25 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 8388608;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 8388608);}

    void test_eval_26 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 104677;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 104677);}

    void test_eval_27 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 224629;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 224629);}

    void test_eval_28 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 350213;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 350213);}

    void test_eval_29 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 479813;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 479813);}

    void test_eval_30 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 611839;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 611839);}

    void test_eval_31 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 746653;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 746653);}

    void test_eval_32 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 882241;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 882241);}

    void test_eval_33 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 1020247;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 1020247);}

    void test_eval_34 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 1159393;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 1159393);}

    void test_eval_35 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 1299553;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 1299553);}

    void test_eval_36 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 1440913;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 1440913);}

    void test_eval_37 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 1583359;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 1583359);}

    void test_eval_38 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 1726883;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 1726883);}

    void test_eval_39 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 1870541;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 1870541);}

    void test_eval_40 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 2015063;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 2015063);}

    void test_eval_41 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 2160391;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 2160391);}

    void test_eval_42 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 2307139;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 2307139);}

    void test_eval_43 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 2454421;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 2454421);}

    void test_eval_44 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 2601763;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 2601763);}

    void test_eval_45 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 2749919;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 2749919);}

    void test_eval_46 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 2898367;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 2898367);}

    void test_eval_47 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 3047647;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 3047647);}

    void test_eval_48 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 3196849;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 3196849);}

    void test_eval_49 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 3346507;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 3346507);}

    void test_eval_50 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 3497623;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 3497623);}

    void test_eval_51 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 3648781;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 3648781);}

    void test_eval_52 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 3800059;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 3800059);}

    void test_eval_53 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 3951083;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 3951083);}

    void test_eval_54 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 4103441;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 4103441);}

    void test_eval_55 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 4256051;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 4256051);}

    void test_eval_56 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 4410163;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 4410163);}

    void test_eval_57 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 4562563;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 4562563);}

    void test_eval_58 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 4715911;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 4715911);}

    void test_eval_59 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 4869743;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 4869743);}

    void test_eval_60 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 5023169;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 5023169);}

    void test_eval_61 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 5177947;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 5177947);}

    void test_eval_62 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 5332367;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 5332367);}

    void test_eval_63 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 5487539;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 5487539);}

    void test_eval_64 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 5643851;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 5643851);}

    void test_eval_65 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 5799961;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 5799961);}

    void test_eval_66 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 5954939;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 5954939);}

    void test_eval_67 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 6111499;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 6111499);}

    void test_eval_68 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 6268111;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 6268111);}

    void test_eval_69 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 6424877;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 6424877);}

    void test_eval_70 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 6581837;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 6581837);}

    void test_eval_71 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 6738751;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 6738751);}

    void test_eval_72 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 6895289;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 6895289);}

    void test_eval_73 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 7051981;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 7051981);}

    void test_eval_74 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 7210667;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 7210667);}

    void test_eval_75 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 7368631;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 7368631);}

    void test_eval_76 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 7527977;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 7527977);}

    void test_eval_77 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 7685701;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 7685701);}

    void test_eval_78 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 7844623;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 7844623);}

    void test_eval_79 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 8003423;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 8003423);}

    void test_eval_80 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 8162939;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 8162939);}

    void test_eval_81 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 8322023;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 8322023);}

    void test_eval_82 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 8482073;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 8482073);}

    void test_eval_83 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 8640451;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 8640451);}

    void test_eval_84 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 8799779;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 8799779);}

    void test_eval_85 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 8960299;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 8960299);}

    void test_eval_86 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 9121291;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 9121291);}

    void test_eval_87 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 9280897;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 9280897);}

    void test_eval_88 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 9442093;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 9442093);}

    void test_eval_89 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 9602311;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 9602311);}

    void test_eval_90 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 9763241;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 9763241);}

    void test_eval_91 () {
        addend[0] = addend[1] = addend[2] = addend[3] = 0;
        sum = 9925207;
        eval();
        CPPUNIT_ASSERT((addend[0] + addend[1] + addend[2] + addend[3]) == 9925207);}

    // -----
    // print
    // -----

    void test_print () {
        addend[0] = 2;
        addend[1] = 3;
        addend[2] = 5;
        addend[3] = 7;
        std::ostringstream out;
        print(out);
        CPPUNIT_ASSERT(out.str() == "2 3 5 7\n");}

    // -----
    // suite
    // -----

    CPPUNIT_TEST_SUITE(TestPrimes);
    CPPUNIT_TEST(test_read_1);
    CPPUNIT_TEST(test_read_2);
    CPPUNIT_TEST(test_read_3);
    CPPUNIT_TEST(test_eval_1);
    CPPUNIT_TEST(test_eval_2);
    CPPUNIT_TEST(test_eval_3);
    CPPUNIT_TEST(test_eval_4);
    CPPUNIT_TEST(test_eval_5);
    CPPUNIT_TEST(test_eval_6);
    CPPUNIT_TEST(test_eval_7);
    CPPUNIT_TEST(test_eval_8);
    CPPUNIT_TEST(test_eval_9);
    CPPUNIT_TEST(test_eval_10);
    CPPUNIT_TEST(test_eval_11);
    CPPUNIT_TEST(test_eval_12);
    CPPUNIT_TEST(test_eval_13);
    CPPUNIT_TEST(test_eval_14);
    CPPUNIT_TEST(test_eval_15);
    CPPUNIT_TEST(test_eval_16);
    CPPUNIT_TEST(test_eval_17);
    CPPUNIT_TEST(test_eval_18);
    CPPUNIT_TEST(test_eval_19);
    CPPUNIT_TEST(test_eval_20);
    CPPUNIT_TEST(test_eval_21);
    CPPUNIT_TEST(test_eval_22);
    CPPUNIT_TEST(test_eval_23);
    CPPUNIT_TEST(test_eval_24);
    CPPUNIT_TEST(test_eval_25);
    CPPUNIT_TEST(test_eval_26);
    CPPUNIT_TEST(test_eval_27);
    CPPUNIT_TEST(test_eval_28);
    CPPUNIT_TEST(test_eval_29);
    CPPUNIT_TEST(test_eval_30);
    CPPUNIT_TEST(test_eval_31);
    CPPUNIT_TEST(test_eval_32);
    CPPUNIT_TEST(test_eval_33);
    CPPUNIT_TEST(test_eval_34);
    CPPUNIT_TEST(test_eval_35);
    CPPUNIT_TEST(test_eval_36);
    CPPUNIT_TEST(test_eval_37);
    CPPUNIT_TEST(test_eval_38);
    CPPUNIT_TEST(test_eval_39);
    CPPUNIT_TEST(test_eval_40);
    CPPUNIT_TEST(test_eval_41);
    CPPUNIT_TEST(test_eval_42);
    CPPUNIT_TEST(test_eval_43);
    CPPUNIT_TEST(test_eval_44);
    CPPUNIT_TEST(test_eval_45);
    CPPUNIT_TEST(test_eval_46);
    CPPUNIT_TEST(test_eval_47);
    CPPUNIT_TEST(test_eval_48);
    CPPUNIT_TEST(test_eval_49);
    CPPUNIT_TEST(test_eval_50);
    CPPUNIT_TEST(test_eval_51);
    CPPUNIT_TEST(test_eval_52);
    CPPUNIT_TEST(test_eval_53);
    CPPUNIT_TEST(test_eval_54);
    CPPUNIT_TEST(test_eval_55);
    CPPUNIT_TEST(test_eval_56);
    CPPUNIT_TEST(test_eval_57);
    CPPUNIT_TEST(test_eval_58);
    CPPUNIT_TEST(test_eval_59);
    CPPUNIT_TEST(test_eval_60);
    CPPUNIT_TEST(test_eval_61);
    CPPUNIT_TEST(test_eval_62);
    CPPUNIT_TEST(test_eval_63);
    CPPUNIT_TEST(test_eval_64);
    CPPUNIT_TEST(test_eval_65);
    CPPUNIT_TEST(test_eval_66);
    CPPUNIT_TEST(test_eval_67);
    CPPUNIT_TEST(test_eval_68);
    CPPUNIT_TEST(test_eval_69);
    CPPUNIT_TEST(test_eval_70);
    CPPUNIT_TEST(test_eval_71);
    CPPUNIT_TEST(test_eval_72);
    CPPUNIT_TEST(test_eval_73);
    CPPUNIT_TEST(test_eval_74);
    CPPUNIT_TEST(test_eval_75);
    CPPUNIT_TEST(test_eval_76);
    CPPUNIT_TEST(test_eval_77);
    CPPUNIT_TEST(test_eval_78);
    CPPUNIT_TEST(test_eval_79);
    CPPUNIT_TEST(test_eval_80);
    CPPUNIT_TEST(test_eval_81);
    CPPUNIT_TEST(test_eval_82);
    CPPUNIT_TEST(test_eval_83);
    CPPUNIT_TEST(test_eval_84);
    CPPUNIT_TEST(test_eval_85);
    CPPUNIT_TEST(test_eval_86);
    CPPUNIT_TEST(test_eval_87);
    CPPUNIT_TEST(test_eval_88);
    CPPUNIT_TEST(test_eval_89);
    CPPUNIT_TEST(test_eval_90);
    CPPUNIT_TEST(test_eval_91);
    CPPUNIT_TEST(test_print);
    CPPUNIT_TEST_SUITE_END();};

#endif // TestCollatz_h
